#pragma once
#include <osgViewer/View>
#include <QtCore/qglobal.h>

#ifdef MEASUREEVENTLIBDLL  
#define MEASUREEVENTAPI Q_DECL_EXPORT
#else  
#define MEASUREEVENTAPI  Q_DECL_IMPORT
#endif 

class IEventCall;

/**
 * @brief 测量事件的接口
 */

class MEASUREEVENTAPI IOsgMeasureEvent
{
public:
    /**
     * @brief addEventToViewer 增加事件到浏览器
     * @param view  浏览器
     */
    virtual void addEventToViewer(osgViewer::View *view) = 0;
};


/**
 * @brief 生产测量事件的接口的工厂
 */
class MEASUREEVENTAPI IOsgMeasureEventFactory
{
public:
    /**
     * @brief create 建造测量事件窗口
     * @param view  浏览器
     * @param root 场景根节点
     * @param icall 回调类
     */
    IOsgMeasureEvent* create(osgViewer::View *view, osg::Group *root, IEventCall* icall);
};
